// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
//导入路由表
import router from './router'
//导入store
import store from './store'
//导入axios
import axios from 'axios'
import VueAxios from 'vue-axios'
//导入ElementUI
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'

Vue.use(VueAxios, axios);
//使用ElementUI
Vue.use(ElementUI);
Vue.config.productionTip = false;

//====================路由过滤器============开始================
// 在路由前执行
//beforeEach : 路由过滤器，类似于后台的过滤器，在每次路由前都会进行拦截
router.beforeEach((to, from, next) => {
  //to : 目标资源【要去的资源】
  //from : 源资源【从哪来的资源】
  //next : 下一个路由过滤器
  // 获取用户登录标识
  let isLogin = sessionStorage.getItem('isLogin');
  // 注销【退出】
  if (to.path == '/logout') {
    // 清空sessionStorage
    sessionStorage.clear();
    // 跳转到登录
    next({path: '/login'});
  }
  else if (to.path == '/regist') {
    //注册就放行
    next();
  }
  // 如果请求的是登录页，判断是否登录过：如果是，直接跳转到首页
  else if (to.path == '/login') {
    if (isLogin != null) {
      // 已经登录，跳转到首页
      next({path: '/home'});
    }
  }
  else if (isLogin == null) {
    //没有登录，跳转到登录页
    next({path: '/login'});
  }
  // 下一个路由
  next();
});

//====================路由过滤器============结束================

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,  //使用路由
  store,  //使用store
  components: { App },
  template: '<App/>'
});
